﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Cesave.Domain.PermisosModule.Entities;
using Cesave.Domain.Core;
using System.Collections;

namespace Cesave.Domain.PermisosModule.Contracts.Secciones
{
	/// <summary>
	/// 
	/// </summary>
	public interface ISeccionRepository
		: IRepositoryEx<Seccion>
	{
		/// <summary>
		/// 
		/// </summary>
		/// <param name="seccionesByModuloSpecification"></param>
		/// <returns></returns>
		IEnumerable<Seccion> FindSeccionesByModulo(SeccionesByModuleSpecification seccionesByModuloSpecification);

		/// <summary>
		/// 
		/// </summary>
		/// <param name="seccionesByModuloSpecification"></param>
		/// <param name="seccionesByStatusSpecification"></param>
		/// <returns></returns>
		IEnumerable<Seccion> FindSeccionesByModuloAndStatus(SeccionesByModuleSpecification seccionesByModuloSpecification, SeccionesByStatusSpecification seccionesByStatusSpecification);

        /// <summary>
        /// Encuentra las secciones de acuerdo a la junta.
        /// </summary>
        /// <param name="specification">
        /// Especificación de búsqueda de secciones por medio de la junta.
        /// </param>
        /// <returns>
        /// Lista de secciones.
        /// </returns>
        IEnumerable<Seccion> FindSeccionesByJunta(SeccionesByJuntaSpecificacion specification);
	}
}